
/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

JCLOUD IoT Engine API
API related to IoT Engine

OpenAPI spec version: v2
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>

#import <JDCloudOCSDKIotcore/IotcoreExecutor.h>


/// 注册单个设备并返回秘钥信息
@implementation  IotcoreAddDeviceExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/device:add";
    return self;
}
@end

/// 新建产品Topic
@implementation  IotcoreCreateProductTopicExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/topics";
    return self;
}
@end

/// 更新设备影子的期望值
@implementation  IotcoreUpdateThingShadowExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PATCH";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/devices/{identifier}/shadow";
    return self;
}
@end

/// 删除产品
@implementation  IotcoreDeleteProductExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/regions/{regionId}/instances/{instanceId}/products/{productKey}";
    return self;
}
@end

/// 分页查询设备信息,支持一个或多个条件
@implementation  IotcoreQueryDevicePageExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/devices:queryPage";
    return self;
}
@end

/// 设备服务调用
@implementation  IotcoreInvokeThingServiceExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/devices/{identifier}/services";
    return self;
}
@end

/// 查看设备影子
@implementation  IotcoreDescribeThingShadowExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/devices/{identifier}/shadow";
    return self;
}
@end

/// 设备Topic调用
@implementation  IotcoreInvokeThingTopicExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/devices/{identifier}/topic";
    return self;
}
@end

/// 查看产品列表接口
@implementation  IotcoreListProductsExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/products";
    return self;
}
@end

/// 新建产品
@implementation  IotcoreCreateProductExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/products";
    return self;
}
@end

/// 导出物模型
@implementation  IotcoreExportThingModelExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/abilities:exportThingModel";
    return self;
}
@end

/// 查看产品功能列表接口
@implementation  IotcoreListProductAbilitiesExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/abilities";
    return self;
}
@end

/// 查看产品
@implementation  IotcoreDescribeProductExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/products/{productKey}";
    return self;
}
@end

/// 修改设备详情
@implementation  IotcoreUpdateDeviceExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/device/{deviceId}:update";
    return self;
}
@end

/// 修改产品
@implementation  IotcoreUpdateProductExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PATCH";
    self.url = @"/regions/{regionId}/instances/{instanceId}/products/{productKey}";
    return self;
}
@end

/// 查询设备详情
@implementation  IotcoreQueryDeviceDetailExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/device/{deviceName}:detail";
    return self;
}
@end

/// 导入物模型
@implementation  IotcoreImportThingModelExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/regions/{regionId}/instances/{instanceId}/abilities:importThingModel";
    return self;
}
@end

/// 删除设备
@implementation  IotcoreRemoveDeviceExecutor

-(id) initWithJDCloudClient:(IotcoreClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/regions/{regionId}/instances/{instanceId}/regions/{regionId}/instances/{instanceId}/products/{productKey}/device/{deviceName}:delete";
    return self;
}
@end
